import java.io.*;
// import tec.Transport;
// import tec.Usager;
// import tec.FabriquePassager;
// import tec.JournalBus;
// import tec.Journal;
// import tec.ModeEcritureLog;
// import tec.SortieErreur;
import tec.*;

class Simple extends OptionClient{

  /*
   * Sur un parametre de type Object, la methode println()
   * déclenche la methode toString().
   * La methodes toString() doit etre redefinie dans les
   * deux classes PassagerStandard et Autobus.
   */
  static private void deboguerEtat (Object t, Object p) {
		System.out.println(p);
		System.out.println(t);
  }

    static public void main (String[] args) throws TecInvalidException, IOException{
		Simple s = new Simple();
		s.choixTypeExecution("la recette");
    }
	
    public void lancer() throws TecInvalidException, IOException{
		Transport serenity;
		if(this.journalisation == true){
			tec.Journal j;
			if (this.sortie == true){
				j = new Journal(new SortieErreur());
				}
			else {
				j = new Journal(new SortieFichier());
				}
		
			serenity = new tec.JournalBus(1,2,j);
		}	
		else {
			serenity = new tec.Autobus(1,2);
		}
		Usager kaylee = FabriquePassager.faireReposCalme("Kaylee", 5);
		serenity.allerArretSuivant();
		// debogue
		System.out.println(serenity);
	
		kaylee.monterDans(serenity);
	
		Usager jayne = FabriquePassager.faireReposCalme("Jayne", 4);
		jayne.monterDans(serenity);
	
		serenity.allerArretSuivant();
		// debogue
		System.out.println(serenity);
		System.out.println(kaylee);
		System.out.println(jayne);
	
		Usager inara = FabriquePassager.faireReposCalme("Inara", 5);
		inara.monterDans(serenity);
	
		serenity.allerArretSuivant();
		// debogue
		System.out.println(serenity);
		System.out.println(kaylee);
		System.out.println(jayne);
		System.out.println(inara);
	
		serenity.allerArretSuivant();
		// debogue
		System.out.println(serenity);
		System.out.println(kaylee);
		System.out.println(jayne);
		System.out.println(inara);
	
		serenity.allerArretSuivant();
		// debogue
		System.out.println(serenity);
		System.out.println(kaylee);
		System.out.println(jayne);
		System.out.println(inara);
    }
}


/* Resultat de l'execution.
[arret:1, assis:0, debout:0]
[arret:2, assis:1, debout:1]
Kaylee assis
Jayne debout
[arret:3, assis:1, debout:2]
Kaylee assis
Jayne debout
Inara debout
[arret:4, assis:1, debout:1]
Kaylee assis
Jayne dehors
Inara debout
[arret:5, assis:0, debout:0]
Kaylee dehors
Jayne dehors
Inara dehors
*/
// import tec.SortieFichier;
